package com.example.nacostest.controller;

//import com.example.foundtion.dao.CountryDao;
import com.example.nacostest.dao.MyTestDao;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@RequestMapping
@RestController
public class TestController {
    @Autowired
    private DiscoveryClient discoveryClient;

    @GetMapping("/getServiceList")
    public List<ServiceInstance> getServiceList() {

        List<ServiceInstance> serviceInstanceList = discoveryClient.getInstances("nacos-test");
        return serviceInstanceList;
    }


    @Autowired
    private MyTestDao myTestDao;

    /**
     *      直接调用本工程的dao    如果两个resources目录下要是都有 xml，只能找到其中一个，另一个不能绑定,但是以java文件形式是可以的
     */
    @GetMapping("/testCountryAll")
    public String testCountryAll() {
        List<Map<String, Object>> list = myTestDao.getAllCountry();
        return list.toString();
    }

    /**
     *      直接调用本工程的dao    如果两个resources目录下要是都有 xml，只能找到其中一个，另一个不能绑定,但是以java文件形式是可以的
     */
    @GetMapping("/getAllCountry222")
    public String getAllCountry222() {
//        List<Map<String, Object>> list = myTestDao.getAllCountry222();
//        return list.toString();
        return  "";
    }



//    @Autowired
//    private CountryDao countryDao;

    /**
     *      调用公用工程的dao  如果两个resources目录下要是都有 xml，只能找到其中一个，另一个不能绑定,但是以java文件形式是可以的
     */
    @GetMapping("/testCountry/{id}")
    public String getCountryById(@PathVariable("id") int id) {
//        Map<String, Object> map = countryDao.getCountryById(id);
//        return map.toString();
        return null;
    }


    @Value("${test.test:200}")      // 这种写法加了 因为又冒号    可以不在yml中配置 优先级 yml>@value>代码
    private int count=300;

    @GetMapping("testValue")
    public int testValue(){
        return count;
    }
}
